package com.cl.pattern.chain;

/**
 * @ClassName Client
 * @Description
 * @Author Small
 * @Date 2020/7/6 16:52
 * @Version 1.0
 **/
public class Client {
    public static void main(String[] args) {
        //请假条来一张
        LeaveBill leave = new LeaveBill(2,"张三","身体不适");

        //各位领导
        Handler groupLeader = new GroupLeader();
        Handler manager = new DeptManager();
        Handler bigManager = new BigManager();

        // 设置直接后续处理节点
        groupLeader.setNextHandler(manager);//小组长的领导是部门经理
        manager.setNextHandler(bigManager);//部门经理的领导是总经理
        //之所以在这里设置上级领导，是因为可以根据实际需求来更改设置，如果实战中上级领导人都是固定的，则可以移到领导实现类中。

        //提交申请
        groupLeader.submit(leave);
    }
}
